home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / Griffith 0.9.8 / griffith-0.9.8-win32.exe / {app} / lib / widgets.py < prev   
Text File  |  2008-11-17  |  22KB  |  508 lines

  1. # -*- coding: UTF-8 -*-
  2.  
  3. __revision__ = '$Id: widgets.py 1040 2008-11-15 21:13:49Z mikej06 $'
  4.  
  5. # Copyright (c) 2005-2008 Vasco Nunes, Piotr O┼╝arowski
  6. #
  7. # This program is free software; you can redistribute it and/or modify
  8. # it under the terms of the GNU General Public License as published by
  9. # the Free Software Foundation; either version 2 of the License, or
  10. # (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. # GNU Library General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program; if not, write to the Free Software
  19. # 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
  20.  
  21. # You may use and distribute this software under the terms of the
  22. # GNU General Public License, version 2 or later
  23.  
  24. import gtk
  25. import sys
  26.  
  27. def define_widgets(self, gladefile):
  28.     get = lambda x: gladefile.get_widget(x)
  29.     self.widgets = {}
  30.     
  31.     self.widgets['window'] = get('main_window')
  32.     self.widgets['window'].connect('key_press_event', self.on_key_press_event)
  33.     self.widgets['treeview'] = get('main_treeview')
  34.     self.widgets['treeview'].connect('button_press_event', self.on_maintree_button_press_event)
  35.     self.widgets['statusbar'] = get('statusbar')
  36.     self.widgets['progressbar']    = get('w_progress')    # get from web
  37.     #buttons
  38.     self.widgets['new_db']      = get('new_bt')
  39.     self.widgets['toolbar'] = get('toolbar1')
  40.     
  41.  
  42.     self.widgets['movie'] = {#{{{
  43.         'cast':            get('m_cast'),
  44.         'classification':    get('m_classification'),
  45.         'collection':        get('m_collection'),
  46.         'color':        get('m_color'),
  47.         'condition':        get('m_condition'),
  48.         'country':        get('m_country'),
  49.         'director':        get('m_director'),
  50.         'genre':        get('m_genre'),
  51.         'imdb':            get('m_imdb'),
  52.         'layers':        get('m_layers'),
  53.         'loan_info':        get('loan_information'),
  54.         'medium':        get('m_medium'),
  55.         'notes':        get('m_notes'),
  56.         'number':        get('m_number'),
  57.         'o_title':        get('m_o_title'),
  58.         'picture':        get('m_picture_image'),
  59.         'picture_button':    get('m_picture'),
  60.         'plot':            get('m_plot'),
  61.         'region':        get('m_region'),
  62.         'runtime':        get('m_runtime'),
  63.         'seen_icon':        get('m_seen_icon'),
  64.         'site':            get('m_site'),
  65.         'studio':        get('m_studio'),
  66.         'tags':            get('m_tags'),
  67.         'title':        get('m_title'),
  68.         'trailer':        get('m_trailer'),
  69.         'vcodec':        get('m_vcodec'),
  70.         'volume':        get('m_volume'),
  71.         'year':            get('m_year'),
  72.         'audio_vbox':        get('m_audio_vbox'),
  73.         'subtitle_vbox':    get('m_subtitle_vbox'),
  74.         'show_collection_button':get('m_show_collection_button'),
  75.         'show_volume_button':    get('m_show_volume_button'),
  76.         'go_o_site_button':    get('go_o_site'),
  77.         'go_site_button':    get('go_site'),
  78.         'go_trailer_button':    get('go_trailer'),
  79.         'return_button':    get('return_button'),
  80.         'loan_button':        get('loan_button'),
  81.         'loan_history':        get('loan_history'),
  82.         'loan_to':        get('loan_to'),
  83.         'email_reminder_button':get('b_email_reminder'),
  84.         'image_rating':        get('m_image_rating'),
  85.     }
  86.     get('m_seen_icon_eventbox').connect('button_press_event', self.on_m_seen_icon_button_press_event)
  87.     #}}}
  88.  
  89.     self.widgets['add'] = {#{{{
  90.         'window':    get('add_movie'),
  91.         'notebook':    get('notebook_add'),
  92.         'classification':get('am_classification'),
  93.         'collection':    get('am_collection_combo'),
  94.         'color':    get('am_color'),
  95.         'condition':    get('am_condition'),
  96.         'country':    get('am_country'),
  97.         'director':    get('am_director'),
  98.         'discs':    get('am_discs'),
  99.         'genre':    get('am_genre'),
  100.         'site':        get('am_imdb'),
  101.         'layers':    get('am_layers'),
  102.         'media':    get('am_media'),
  103.         'medium_vbox':    get('am_medium_vbox'),
  104.         'number':    get('am_number'),
  105.         'notes':    get('am_obs'),
  106.         'o_title':    get('am_original_title'),
  107.         'picture':    get('am_image'),
  108.         'image':    get('am_hide_image_name'),
  109.         'plot':        get('am_plot'),
  110.         'plugin_desc':    get('am_plugin_desc'),
  111.         'plugin_image':    get('am_plugin_image'),
  112.         'region':    get('am_region'),
  113.         'runtime':    get('am_runtime'),
  114.         'seen':        get('am_seen'),
  115.         'o_site':    get('am_site'),
  116.         'source':    get('am_source'),
  117.         'studio':    get('am_studio'),
  118.         'tag_vbox':    get('am_tag_vbox'),
  119.         'title':    get('am_title'),
  120.         'trailer':    get('am_trailer'),
  121.         'vcodec':    get('am_vcodec'),
  122.         'volume':    get('am_volume_combo'),
  123.         'cast':        get('am_with'),
  124.         'year':        get('am_year'),
  125.         'image_rating': get('image_add_rating'),
  126.         'rating_slider':get('rating_scale_add'),
  127.         'lang_menu':    get('lang_menu'),
  128.         'lang_treeview':get('lang_treeview'),
  129.         'b_get_from_web':get('get_from_web'),
  130.         'c_web_source':    get('combo_source'), # c_web_source
  131.         'delete_poster': get('delete_poster'),
  132.         'add_button':    get('am_add_button'),
  133.         'add_close_button':get('am_add_close_button'),
  134.         'clear_button':    get('am_clear_button'),
  135.         'save_button':    get('am_save_button'),
  136.         'cb_only_empty':get('am_cb_only_empty'),
  137.     }
  138.     self.widgets['add']['window'].connect('delete_event', self.on_delete_event_am)
  139.     self.widgets['add']['lang_treeview'].connect('button_press_event', self.on_lang_treeview_button_press_event)
  140.     self.widgets['add']['o_title'].connect('activate', self.on_enter)
  141.     self.widgets['add']['title'].connect('activate', self.on_enter)
  142.     self.widgets['add']['window'].set_transient_for(self.widgets['window'])
  143.     #}}}
  144.  
  145.     self.widgets['preferences'] = {#{{{
  146.         'window':        get('w_preferences'),
  147.         'treeview':        get('p_treeview'),
  148.         'color':        get('p_color'),
  149.         'condition':        get('p_condition'),
  150.         'db_details':        get('p_db_details'),
  151.         'db_host':        get('p_db_host'),
  152.         'db_name':        get('p_db_name'),
  153.         'db_passwd':        get('p_db_passwd'),
  154.         'db_port':        get('p_db_port'),
  155.         'db_type':        get('p_db_type'),
  156.         'db_user':        get('p_db_user'),
  157.         'epdf_reader':        get('pdf_reader_entry'),
  158.         'font':            get('p_font'),
  159.         'layers':        get('p_layers'),
  160.         'media':        get('p_media'),
  161.         'region':        get('p_region'),
  162.         's_classification':    get('p_s_classification'),
  163.         's_country':        get('p_s_country'),
  164.         's_director':        get('p_s_director'),
  165.         's_genre':        get('p_s_genre'),
  166.         's_image':        get('p_s_image'),
  167.         's_notes':        get('p_s_notes'),
  168.         's_o_site':        get('p_s_o_site'),
  169.         's_o_title':        get('p_s_o_title'),
  170.         's_plot':        get('p_s_plot'),
  171.         's_rating':        get('p_s_rating'),
  172.         's_runtime':        get('p_s_runtime'),
  173.         's_site':        get('p_s_site'),
  174.         's_studio':        get('p_s_studio'),
  175.         's_title':        get('p_s_title'),
  176.         's_trailer':        get('p_s_trailer'),
  177.         's_cast':        get('p_s_cast'),
  178.         's_year':        get('p_s_year'),
  179.         's_limit':        get('p_sp_s_limit'),
  180.         'vcodec':        get('p_vcodec'),
  181.         'view_image':        get('view_image'),
  182.         'view_number':        get('view_number'),
  183.         'view_o_title':        get('view_otitle'),
  184.         'view_title':        get('view_title'),
  185.         'view_director':    get('view_director'),
  186.         'view_genre':    get('view_genre'),
  187.         'view_seen':    get('view_seen'),
  188.         'view_year':    get('view_year'),
  189.         'view_runtime':    get('view_runtime'),
  190.         'view_rating':    get('view_rating'),
  191.         'rating_image':        get('rating_image'),
  192.         'spellchecker':        get('spellchecker_pref'),
  193.         'spell_notes':        get('spell_notes'),
  194.         'spell_plot':        get('spell_plot'),
  195.         'spell_lang':        get('spell_lang'),
  196.         'vbox_spellchecker':    get('vbox_spellchecker'),
  197.         'default_plugin':    get('default_plugin'),
  198.         'mail_smtp_server':    get('mail_smtp_server'),
  199.         'mail_use_auth':    get('mail_use_auth'),
  200.         'mail_username':    get('mail_username'),
  201.         'mail_password':    get('mail_password'),
  202.         'mail_email':        get('mail_email'),
  203.         'mail_smtp_port':        get('mail_smtp_port'),
  204.         'mail_use_tls':        get('mail_use_tls'),
  205.         'lang_name':        get('lang_name_combo'),
  206.         'tag_name':        get('tag_name_combo'),
  207.         'acodec_name':        get('acodec_name_combo'),
  208.         'achannel_name':    get('achannel_name_combo'),
  209.         'subformat_name':    get('subformat_name_combo'),
  210.         'medium_name':        get('medium_name_combo'),
  211.         'vcodec_name':        get('vcodec_name_combo'),
  212.         'sortby':        get('p_sortby'),
  213.         'sortby_reverse':    get('p_sortby_reverse'),
  214.         'amazon_locale':    get('cb_amazon_locale'),
  215.     }
  216.     self.widgets['preferences']['treeview'].connect('button_press_event', self.on_p_tree_button_press_event)
  217.     self.widgets['preferences']['window'].connect('delete_event', self.on_delete_event_p)
  218.     self.widgets['preferences']['spellchecker'].connect('toggled', self.on_cb_spellchecker_pref_toggled)
  219.     self.widgets['preferences']['window'].set_transient_for(self.widgets['window'])
  220.     #}}}
  221.  
  222.     self.widgets['results'] = {#{{{
  223.         'window':    get('results'),
  224.         'treeview':    get('results_treeview'),
  225.         'select':    get('results_select'),
  226.         'cancel':    get('results_cancel'),
  227.     }
  228.     self.widgets['results']['window'].connect('delete_event', self.on_delete_event_r)
  229.     self.widgets['results']['window'].set_transient_for(self.widgets['add']['window'])
  230.     # default results window signals:
  231.     self.results_signal = self.widgets['results']['select'].connect('clicked', self.populate_dialog_with_results)
  232.     self.results_double_click = self.widgets['results']['treeview'].connect('button_press_event', self.on_results_button_press_event)
  233.     #}}}
  234.  
  235.     self.widgets['print_cover'] = {#{{{
  236.         # TODO: merge these two windows
  237.         'window_simple':    get('w_print_cover_simple'),
  238.         'window_image':        get('w_print_cover_image'),
  239.         'cs_size':        get('cover_simple_size'),
  240.         'cs_include_movie_number':get('cover_simple_include_movie_number'),
  241.         'cs_include_poster':    get('cover_simple_include_poster'),
  242.         'ci_size':        get('cover_image_size'),
  243.         'ci_number':        get('cover_image_number'),
  244.     }
  245.     self.widgets['print_cover']['window_simple'].connect('delete_event', self.on_delete_event_pcs)
  246.     self.widgets['print_cover']['window_image'].connect('delete_event', self.on_delete_event_pci)
  247.     self.widgets['print_cover']['window_simple'].set_transient_for(self.widgets['window'])
  248.     self.widgets['print_cover']['window_image'].set_transient_for(self.widgets['window'])
  249.     #}}}
  250.     
  251.     self.widgets['people'] = {#{{{
  252.         'window':    get('w_people'),
  253.         'treeview':    get('p_treeview'),
  254.     }
  255.     self.widgets['people']['window'].connect('delete_event', self.on_delete_event_wp)
  256.     self.widgets['people']['window'].set_transient_for(self.widgets['window'])
  257.     #}}}
  258.     
  259.     self.widgets['person'] = {#{{{
  260.         # TODO: merge these two windows
  261.         'window':    get('w_add_person'),
  262.         'e_window':    get('w_edit_person'),
  263.         'name':        get('ap_name'),
  264.         'email':    get('ap_email'),
  265.         'phone':    get('ap_phone'),
  266.         'e_name':    get('ep_name'),
  267.         'e_email':    get('ep_email'),
  268.         'e_phone':    get('ep_phone'),
  269.         'e_id':        get('ep_id'),
  270.     }
  271.     self.widgets['person']['window'].connect('delete_event', self.on_delete_event_ap)
  272.     self.widgets['person']['e_window'].connect('delete_event', self.on_delete_event_ep)
  273.     self.widgets['person']['window'].set_transient_for(self.widgets['people']['window'])
  274.     self.widgets['person']['e_window'].set_transient_for(self.widgets['people']['window'])
  275.     #}}}
  276.  
  277.     self.widgets['filter'] = {#{{{
  278.         'text':        get('filter_txt'),
  279.         'criteria':    get('filter_criteria'),
  280.         'collection':    get('f_col'),
  281.         'volume':    get('f_volume'),
  282.         'loanedto':    get('f_loanedto'),
  283.         'tag':    get('f_bytag'),
  284.     }#}}}
  285.     
  286.     self.widgets['menu'] = {#{{{
  287.         'toolbar':    get('menu_toolbar'),
  288.         'export':    get('export_menu'),
  289.         'import':    get('import_menu'),
  290.         'not_seen_movies':    get('seen_movies'),
  291.         'loaned_movies':get('loaned_movies'),
  292.         'all_movies':    get('all_movies'),
  293.         'delete_poster': get('t_delete_poster'),
  294.         'loan':        get('loan1'),
  295.         'email':    get('return1'),
  296.         'return':    get('e-mail_reminder1'),
  297.     }#}}}
  298.     
  299.     self.widgets['popups'] = {#{{{
  300.         'main':        get('popup'),
  301.         'loan':        get('popup_loan'),
  302.         'return':    get('popup_return'),
  303.         'email':    get('popup_email'),
  304.     }#}}}
  305.     
  306.     self.widgets['w_loan_to']     = get('w_loan_to')
  307.     self.widgets['w_loan_to'].connect('delete_event', self.on_delete_event_lt)
  308.  
  309.     self.widgets['poster_window'] = get('poster_window')
  310.     self.widgets['poster_window'].connect('delete_event', self.on_delete_event_pw)
  311.     self.widgets['poster_window'].set_transient_for(self.widgets['window'])
  312.     self.widgets['big_poster']    = get('big_poster')
  313.  
  314.     #add some tooltips
  315.     self.widgets['tooltips'] = gtk.Tooltips()
  316.     self.widgets['tooltips'].set_tip(self.widgets['preferences']['epdf_reader'], _('Define here the PDF reader you want to use within Griffith. Popular choices are xpdf, gpdf, evince or kpdf. Make sure you have this program installed and working first.'))
  317.     self.widgets['tooltips'].set_tip(self.widgets['preferences']['spell_lang'], _("Here you can define the desired language to use while spell checking some fields. Use you locale setting. For example, to use european portuguese spell checking enter 'pt'"))
  318.     self.widgets['tooltips'].set_tip(self.widgets['preferences']['mail_smtp_server'], _("Use this entry to define the SMTP server you want to use to send e-mails. On *nix systems, 'localhost' should work. Alternatively, you can use your Internet Service Provider's SMTP server address."))
  319.     self.widgets['tooltips'].set_tip(self.widgets['preferences']['mail_email'], _("This is the from e-mail address that should be used to all outgoing e-mail. You want to include your own e-mail address here probably."))
  320.     self.widgets['tooltips'].set_tip(self.widgets['preferences']['mail_smtp_port'], _("Here you can define the smtp server port to use. If you want to use your gmail account service to send e-mails, try to enter '587' here. Default (and the most common one) is '25'"))
  321.     self.widgets['tooltips'].set_tip(self.widgets['preferences']['mail_use_tls'], _("If you need TLS support, please check this checkbox. This is needed, for example, when using gmail service to send your reminder e-mails."))
  322.  
  323.     # define handlers for general events
  324.     gladefile.signal_autoconnect({#{{{
  325.         'gtk_main_quit'                : self.destroy,
  326.         'on_window_state'            : self.on_window_state,
  327.         'on_configure'                : self.on_configure,
  328.         'on_about1_activate'            : self.about_dialog,
  329.         'on_quit1_activate'            : self.destroy,
  330.         'on_toolbar_quit_clicked'        : self.destroy,
  331.         'on_toolbar_add_clicked'        : self.add_movie,
  332.         'on_cancel_add_movie_clicked'        : self.hide_add_window,
  333.         'on_add1_activate'            : self.add_movie,
  334.         'on_add_movie_clicked'            : self.add_movie_db,
  335.         'on_add_movie_close_clicked'        : self.add_movie_close_db,
  336.         'on_delete_movie_clicked'        : self.delete_movie,
  337.         'on_delete1_movie_activate'        : self.delete_movie,
  338.         'on_main_treeview_row_activated'    : self.treeview_clicked,
  339.         'on_row_activated'            : self.treeview_clicked,
  340.         'on_get_from_web_clicked'        : self.get_from_web,
  341.         'on_update_button_clicked'        : self.update_movie,
  342.         'on_import_activate'            : self.on_import_activate,
  343.         'on_seen_activate'            : self.toggle_seen,
  344.         # preferences
  345.         'on_preferences1_activate'        : self.show_preferences,
  346.         'on_cancel_preferences_clicked'        : self.hide_preferences,
  347.         'on_save_preferences_clicked'        : self.save_preferences,
  348.         'on_p_db_type_changed'            : self.on_p_db_type_changed,
  349.         'on_backup_activate'            : self.backup,
  350.         'on_restore_activate'            : self.restore,
  351.         'on_merge_activate'            : self.merge,
  352.         'on_cover_simple_activate'        : self.print_cover_simple_show,
  353.         'on_cancel_print_cover_simple_clicked'    : self.print_cover_simple_hide,
  354.         'on_b_print_cover_simple_clicked'    : self.print_cover_simple_process,
  355.         'on_add_clear_clicked'            : self.clear_add_dialog,
  356.         'on_am_save_button_clicked'        : self.update_movie,
  357.         'on_people_activate'            : self.show_people_window,
  358.         'on_cancel_people_clicked'        : self.hide_people_window,
  359.         'on_filter_txt_changed'            : self.filter_txt,
  360.         'on_filter_criteria_changed'        : self.on_filter_criteria_changed,
  361.         'on_clear_filter_clicked'        : self.clear_filter,
  362.         'on_people_add_clicked'            : self.add_person,
  363.         'on_add_person_cancel_clicked'        : self.add_person_cancel,
  364.         'on_add_person_db_clicked'        : self.add_person_db,
  365.         'on_people_delete_clicked'        : self.delete_person,
  366.         'on_people_edit_clicked'        : self.edit_person,
  367.         'on_edit_person_cancel_clicked'        : self.edit_person_cancel,
  368.         'on_update_person_clicked'        : self.update_person,
  369.         'on_clone_activate'            : self.clone_movie,
  370.         'on_loan_button_clicked'        : self.loan_movie,
  371.         'on_cancel_loan_clicked'        : self.cancel_loan,
  372.         'on_loan_ok_clicked'            : self.commit_loan,
  373.         'on_return_button_clicked'        : self.return_loan,
  374.         'on_list_loaned_movies_activate'    : self.filter_loaned,
  375.         'on_m_show_volume_button_clicked'    : self.show_volume,
  376.         'on_m_show_collection_button_clicked'    : self.show_collection,
  377.         'on_cover_choose_image_activate'    : self.print_cover_image,
  378.         'on_cancel_print_cover_image_clicked'    : self.print_cover_image_hide,
  379.         'on_b_print_cover_image_clicked'    : self.print_cover_image_process,
  380.         'on_combo_source_changed'        : self.source_changed,
  381.         # toolbar
  382.         'on_view_toolbar_activate'        : self.toggle_toolbar,
  383.         'on_go_first_clicked'            : self.go_first,
  384.         'on_go_last_clicked'            : self.go_last,
  385.         'on_go_back_clicked'            : self.go_prev,
  386.         'on_go_forward_clicked'            : self.go_next,
  387.         'on_new_bt_clicked'            : self.new_dbb,
  388.         'on_new_activate'            : self.new_dbb,
  389.         'on_edit_button_clicked'        : self.edit_movie,
  390.         # poster
  391.         'on_e_picture_clicked'            : self.change_poster,
  392.         'on_open_poster_clicked'        : self.change_poster,
  393.         'on_zoom_poster_clicked'        : self.z_poster,
  394.         'on_delete_poster_clicked'        : self.del_poster,
  395.         'on_fetch_poster_clicked'        : self.get_poster,
  396.         # URLs
  397.         'on_goto_homepage_activate'        : self.on_goto_homepage_activate,
  398.         'on_goto_forum_activate'        : self.on_goto_forum_activate,
  399.         'on_goto_report_bug_activate'        : self.on_goto_report_bug_activate,
  400.         'on_go_o_site_clicked'            : self.go_oficial_site,
  401.         'on_go_site_clicked'            : self.go_site,
  402.         'on_go_trailer_clicked'            : self.go_trailer_site,
  403.         'on_seen_movies_activate'        : self.filter_not_seen,
  404.         'on_all_movies_activate'        : self.filter_all,
  405.         'on_rating_scale_add_value_changed'    : self.scale_rating_change_add,
  406.         'on_sugest_activate'            : self.sugest_movie,
  407.         'on_popup_delete_activate'        : self.delete_movie,
  408.         'on_popup_clone_activate'        : self.clone_movie,
  409.         'on_popup_simple_activate'        : self.print_cover_simple_show,
  410.         'on_popup_choose_image_activate'    : self.print_cover_image,
  411.         # loans
  412.         'on_popup_loan_activate'        : self.loan_movie,
  413.         'on_popup_return_activate'        : self.return_loan,
  414.         'on_popup_email_activate'        : self.email_reminder,
  415.         'on_email_reminder_clicked'        : self.email_reminder,
  416.         # volumes/collections
  417.         'on_am_collection_combo_changed'    : self.on_am_collection_combo_changed,
  418.         'on_am_volume_combo_changed'        : self.on_am_volume_combo_changed,
  419.         'on_am_add_volume_button_clicked'    : self.add_volume,
  420.         'on_am_add_collection_button_clicked'    : self.add_collection,
  421.         'on_am_remove_volume_button_clicked'    : self.remove_volume,
  422.         'on_am_remove_collection_button_clicked': self.remove_collection,
  423.         'on_f_col_changed'            : self.filter_collection,
  424.         'on_f_volume_changed'            : self.filter_volume,
  425.         'on_f_loanedto_changed'            : self.filter_loanedto,
  426.         'on_f_bytag_changed'            : self.filter_bytag,
  427.         'on_results_cancel_clicked'        : self.results_cancel_ck,
  428.         # languages
  429.         'on_lang_add_clicked'            : self.on_lang_add_clicked,
  430.         'on_lang_remove_clicked'        : self.on_lang_remove_clicked,
  431.         'on_am_lang_add_clicked'        : self.on_am_lang_add_clicked,
  432.         'on_am_lang_remove_clicked'        : self.on_am_lang_remove_clicked,
  433.         'on_lang_rename_clicked'        : self.on_lang_rename_clicked,
  434.         'on_lang_name_combo_changed'        : self.on_lang_name_combo_changed,
  435.         # tags
  436.         'on_tag_add_clicked'            : self.on_tag_add_clicked,
  437.         'on_tag_remove_clicked'            : self.on_tag_remove_clicked,
  438.         'on_tag_rename_clicked'            : self.on_tag_rename_clicked,
  439.         'on_tag_name_combo_changed'        : self.on_tag_name_combo_changed,
  440.         # audio codecs
  441.         'on_acodec_add_clicked'            : self.on_acodec_add_clicked,
  442.         'on_acodec_remove_clicked'        : self.on_acodec_remove_clicked,
  443.         'on_acodec_rename_clicked'        : self.on_acodec_rename_clicked,
  444.         'on_acodec_name_combo_changed'        : self.on_acodec_name_combo_changed,
  445.         # audio channels
  446.         'on_achannel_add_clicked'        : self.on_achannel_add_clicked,
  447.         'on_achannel_remove_clicked'        : self.on_achannel_remove_clicked,
  448.         'on_achannel_rename_clicked'        : self.on_achannel_rename_clicked,
  449.         'on_achannel_name_combo_changed'    : self.on_achannel_name_combo_changed,
  450.         # subtitle formats
  451.         'on_subformat_add_clicked'        : self.on_subformat_add_clicked,
  452.         'on_subformat_remove_clicked'        : self.on_subformat_remove_clicked,
  453.         'on_subformat_rename_clicked'        : self.on_subformat_rename_clicked,
  454.         'on_subformat_name_combo_changed'    : self.on_subformat_name_combo_changed,
  455.         # media
  456.         'on_medium_add_clicked'            : self.on_medium_add_clicked,
  457.         'on_medium_remove_clicked'        : self.on_medium_remove_clicked,
  458.         'on_medium_rename_clicked'        : self.on_medium_rename_clicked,
  459.         'on_medium_name_combo_changed'        : self.on_medium_name_combo_changed,
  460.         # video codecs
  461.         'on_vcodec_add_clicked'            : self.on_vcodec_add_clicked,
  462.         'on_vcodec_remove_clicked'        : self.on_vcodec_remove_clicked,
  463.         'on_vcodec_rename_clicked'        : self.on_vcodec_rename_clicked,
  464.         'on_vcodec_name_combo_changed'        : self.on_vcodec_name_combo_changed
  465.     })#}}}
  466.  
  467. def reconnect_add_signals(self):#{{{
  468.     self.widgets['add']['b_get_from_web'].set_sensitive(True)
  469.     try:
  470.         self.widgets['results']['select'].disconnect(self.poster_results_signal)
  471.     except:
  472.         pass
  473.  
  474.     try:
  475.         self.widgets['results']['treeview'].disconnect(self.results_poster_double_click)
  476.     except:
  477.         pass
  478.  
  479.     # connect signals
  480.     self.results_signal = self.widgets['results']['select'].connect('clicked', \
  481.             self.populate_dialog_with_results)
  482.     self.results_double_click = self.widgets['results']['treeview'].connect('button_press_event', \
  483.         self.on_results_button_press_event)#}}}
  484.  
  485. def connect_poster_signals(self, event, result, current_poster):#{{{
  486.     import edit
  487.  
  488.     try:
  489.         self.widgets['results']['select'].disconnect(self.results_signal)
  490.     except:
  491.         pass
  492.  
  493.     try:
  494.         self.widgets['results']['treeview'].disconnect(self.results_double_click)
  495.     except:
  496.         pass
  497.  
  498.     # connect signals
  499.  
  500.     self.results_poster_double_click = self.widgets['results']['treeview'].connect('button_press_event', \
  501.         edit.get_poster_select_dc, self, result, current_poster)
  502.  
  503.     self.poster_results_signal = \
  504.         self.widgets['results']['select'].connect('clicked', edit.get_poster_select, \
  505.         self, result, current_poster)
  506.     #}}}
  507. # vim: fdm=marker
  508.